// 封装倒计时逻辑函数

// 1. 函数架子搭起来 参数和返回值
// 2. 编写倒计时逻辑  每隔1s 减一  setInterval  --
// vueUse 封装好的倒计时函数

import { ref, computed } from 'vue'
import { useIntervalFn } from '@vueuse/core'
import dayjs from 'dayjs'
function useCountDown () {
  const time = ref(0)
  const formatTime = computed(() => {
    return dayjs.unix(time.value).format('mm分ss秒')
  })
  // 这个函数给到的作用就是每隔1s执行一段我们自己的逻辑
  // 且开放了俩个方法 一个用来开始执行逻辑 一个用来暂停执行逻辑
  const { pause, resume } = useIntervalFn(() => {
    /* your function */
    if (time.value === 0) {
      return pause()
    }
    time.value--
  }, 1000)
  // 开始倒计时
  function start (_time) {
    // 时间初始化
    time.value = _time
    // 开始倒计时
    resume()
  }
  // 停止倒计时
  function stop () {
    pause()
  }
  return {
    time,
    start,
    stop,
    formatTime
  }
}

export default useCountDown
